home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / iguana / incosrc / incosrc.exe / SPI / GENCOS.PAS next >
Pascal/Delphi Source File  |  1993-07-25  |  2KB  |  84 lines

  1.  
  2. CONST
  3.    Header:   STRING = 'Rotation table for spiral';
  4.    OutFile:  STRING = 'SpiPoss';
  5.    DataType: STRING = 'DW';
  6.    DataLen          = 3;
  7.  
  8. VAR
  9.    fo : TEXT;
  10.    fi : FILE OF BYTE;
  11.  
  12.    i, j, k  : INTEGER;
  13.    r : REAL;
  14.    a : WORD;
  15.  
  16.  
  17. CONST
  18.    bc : INTEGER = 0;
  19. PROCEDURE DoNum(b: WORD);
  20. BEGIN
  21.    IF bc = 0 THEN BEGIN
  22.       WriteLn(fo);
  23.       Write(fo, '        ',DataType, ' ', b: DataLen);
  24.    END ELSE
  25.       Write(fo, ',', b : DataLen);
  26.    bc := (bc + 1) MOD 12;
  27. END;
  28.  
  29.  
  30. LABEL
  31.    bail;
  32.  
  33. CONST
  34.    Radius : REAL = 197;
  35.  
  36. BEGIN
  37.    Assign(fo, OutFile+'.inc');
  38.    ReWrite(fo);
  39.    WriteLn(fo, '; ----- ', Header, '. ------------');
  40.  
  41.    a := 0;
  42.    FOR i := 1 TO 57 DO BEGIN
  43.       DoNum(ROUND((Radius-i)/2*Cos(a*PI/150.0)+160.0));
  44.       DoNum(ROUND((Radius-i)/2*Sin(a*PI/150.0)+99.0));
  45.       INC(a);
  46.       DoNum(i)
  47.    END;
  48.    WriteLn(fo);
  49.    WriteLn(fo, 'CirclePosition LABEL WORD');
  50.    bc := 0;
  51.  
  52.    FOR i := 1 TO 300 DO BEGIN
  53.       r := 15.0*Cos(a*PI/30.0)+57.0-15.0;
  54.       DoNum(ROUND((Radius-r)/2*Cos(a*PI/150.0)+160.0));
  55.       DoNum(ROUND((Radius-r)/2*Sin(a*PI/150.0)+99.0));
  56.       INC(a);
  57.       DoNum(ROUND(r))
  58.    END;
  59.  
  60.    WriteLn(fo);
  61.    WriteLn(fo, 'CircleByeBye LABEL WORD');
  62.    bc := 0;
  63.    FOR i := 57 DOWNTO 1 DO BEGIN
  64.       r := 15.0*Cos(a*PI/30.0)+57.0-15.0;
  65.       IF r = 57-15 THEN
  66.          GOTO bail;
  67.       DoNum(ROUND((Radius-r)/2*Cos(a*PI/150.0)+160.0));
  68.       DoNum(ROUND((Radius-r)/2*Sin(a*PI/150.0)+99.0));
  69.       INC(a);
  70.       DoNum(ROUND(r))
  71.    END;
  72. bail:
  73.    FOR i := 57-15 DOWNTO 1 DO BEGIN
  74.       DoNum(ROUND((Radius-i)/2*Cos(a*PI/150.0)+160.0));
  75.       DoNum(ROUND((Radius-i)/2*Sin(a*PI/150.0)+99.0));
  76.       INC(a);
  77.       DoNum(i)
  78.    END;
  79.  
  80.    Close(fo)
  81. END.
  82.  
  83.  
  84.